const path = require('path')
    //在内存中 , 根据 指定的 模板页面 , 生成一份 内存中的 首页 , 同时 自动把 打包好的  bundle.js 注入到 页面底部
    //如果要 配置插件 , 需要在  导出的 对象中, 挂载一个 plugins 节点
const htmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
    entry: path.join(__dirname, './src/main.js'),
    output: {
        path: path.join(__dirname, './dist'),
        filename: 'bundle.js'
    },
    devServer: {
        proxy: {  
            '/api/*': {
                target: 'https://news-at.zhihu.com/api/3', // 目标服务器地址
                secure: false, // 目标服务器地址是否是安全协议
                changeOrigin: true, // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!
                // '/api/login' =>    target + '/login'
                pathRewrite: { '^/api': '/' } // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx
            }
        }


    },
    plugins: [ //所有 webpack 插件的 配置节点 
        new htmlWebpackPlugin({
            template: path.join(__dirname, './src/index.html'), //指定 模板文件 的路径
            filename: 'index.html' //设置 生成 的 内存页面的 名称
        })
    ],
    module: { //配置  所有 第三方 loader 模块的  
        rules: [ //第三方 模块的 匹配规则
            { test: /\.css$/, use: ['style-loader', 'css-loader'] }, //处理css 文件的 loader
            { test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] }, //处理less 文件的 loader
            { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] }, //处理scss 文件的 loader
            { test: /\.(jpg|png|gif|bmp|jpeg)$/, use: 'url-loader?limit=19898&name=[hash:8]-[name].[ext]' }, //处理 图片路径的 loader
            //limit 给定的值 , 是图片的大小 , 单位是 byte , 如果 我们引用的图片 , 大于或等于 给定的limit值 , 
            //则不会转为 base64 格式的 字符串 , 如果 图片小于  给定的 limit 值, 则会被转为 base64的字符串
            { test: /\.(ttf|eot|svg|woff|woff2)$/, use: 'url-loader' }, //处理 字体文件的 loader
            { test: /\.js$/, use: 'babel-loader', exclude: /node_modules/ }, //配置 Babel 来装换 高级的 ES语法
            { test: /\.vue$/, use: 'vue-loader' }
        ]
    },
    resolve: {
        alias: { //修改  vue 被导入时候 的 包的 路径
            //"vue$": "vue/dist/vue.js"
        }
    }
}